
#include <iostream>
#include <string>
using namespace std;

#define W 1
#define S 2
#define A 3
#define D 4

class Point
{
public:

    Point(double x = 0, double y = 0) : x(x), y(y) {
    }

    Point(const Point & p) {
        this->x = p.x;
        this->y = p.y;
    }

    ~Point() {
    }

    void setPoint(const Point &p) {
        this->x = p.x;
        this->y = p.y;
    }
    void setPoint(double x, double y) {
        this->x = x;
        this->y = y;
    }
    void setX(double x) { this->x = x; }
    void setY(double y) { this->y = y; }
    double getX() { return x; }
    double getY() { return y; }
private:
    double x;
    double y;
};


class MAP
{
private:
    int obscacle;
public:
	MAP() {}
	~MAP() {}
	
	void map_1();
	void map_2();
};
void MAP::map_1()
{

	char s[26][27] = {
		"00000000000000000000000000",
		"00000000000000000000000000",
		"00330033003300330033003300",
		"00330033003300330033003300",
		"00330033003300330033003300",
		"00330033003300330033003300",
		"00330033003355330033003300",
		"00330033003355330033003300",
		"00330033003300330033003300",
		"00330033000000000033003300",
		"00330033000000000033003300",
		"00000000003300330000000000",
		"00000000003300330000000000",
		"33003333000000000033330033",
		"55003333000000000033330055",
		"00000000003300330000000000",
		"00000000003333330000000000",
		"00330033003333330033003300",
		"00330033003300330033003300",
		"00330033003300330033003300",
		"00330033003300330033003300",
		"00330033000000000033003300",
		"00330033000000000033003300",
		"00330033000333300033003300",
		"00000000000300300000000000",
		"00000000000300300000000000" };

}

void MAP::map_2()
{

	char s[26][27] = { "00000000000000000000000000",
	"00000000000000000000000000",
	"00000000330033000000000000",
	"00000000330033000000000000",
	"11000011331133110000110000",
	"11000011331133110000110000",
	"33111133333333331111331100",
	"33111133333333331111331100",
	"33333333553355333333331100",
	"33333333553355333333331100",
	"44444433333333334444441100",
	"44444433333333334444441100",
	"44333333333333333333444411",
	"44333333333333333333444411",
	"33333344333333443333331111",
	"33333344333333443333331111",
	"33334444443344444433334444",
	"33334444443344444433334444",
	"11444411111111114444114411",
	"11444411111111114444114411",
	"00111100000000001111001100",
	"00111100000000001111001100",
	"00000000000000000000000000",
	"00000000000333300000000000",
	"00000000000300300000000000",
	"00000000000300300000000000"};

}



class tank
{
private:
    double x,y;
    int direction;
    int v;
    int num;
    bool type;
    bool bullet;
    bool exist;

public:
    tank();
    tank(double x = 0, double y = 0,int direction=1) : x(x), y(y),direction(direction){
    } 
    tank(const tank &p){
        this->x=p.x;
        this->y=p.y;
        this->direction=p.direction;
        this->v=p.v;
        this->num=p.num;
        this->type=p.type;
        this->exist=p.exist;
    }
    ~tank(){}
    int getX(){
        return this->x;
    }
    int getY(){
        return this->y;
    }
    int setdirection(int d){
        this->direction=d;
    }
        int setV(int v){
        this->v=v;
    }
    bool settype(bool type){
        this->type=type;
    }
    bool setexist(bool exist){
        this->exist=exist;
    }
    void left(){
        this->x--;
    }
    void right(){
        this->x++;
    }

    void up(){
        this->y++;
    }

    void down(){
        this->y--;
    }

    void Bullet()
    {
        this->bullet=1;
    }
};

int main()
{
    Point p(5,5);
    //cout<<"点的坐标为("<<p.getX()<<","<<p.getY<<")"<<endl;"
    cout<<"点的坐标("<<p.getX()<<","<<p.getY()<<")"<<endl;
    tank ta(1,2,3);
    cout<<"坐标为("<<ta.getX()<<","<<ta.getY()<<")"<<endl;
    ta.left();
    cout<<"移动后坐标为("<<ta.getX()<<","<<ta.getY()<<")"<<endl;

}